package com.snapan.service;

public interface VerificationCodeService {

    /**
     * 生成并发送验证码
     * @param email 邮箱地址
     * @param type 验证码类型
     * @return 是否成功
     */
    boolean generateAndSendCode(String email, Byte type);

    /**
     * 验证验证码
     * @param email 邮箱地址
     * @param code 用户输入的验证码
     * @param type 验证码类型
     * @return 是否验证成功
     */
    boolean verifyCode(String email, String code, Byte type);

    /**
     * 检查是否发送过于频繁
     * @param email 邮箱地址
     * @param type 验证码类型
     * @return 是否过于频繁
     */
    boolean isTooFrequent(String email, Byte type);

    /**
     * 清理过期验证码
     */
    void cleanExpiredCodes();
}